package cn.ainit.bs.report;

import java.util.List;
import cn.ainit.bs.repList.entity.RepListDataStore;
import cn.ainit.bs.repList.entity.RepViewType;
import cn.ainit.bs.report.entity.ReportBar;
import cn.ainit.bs.report.entity.ReportPie;
import cn.ainit.sys.query.entity.QueryJson;

public interface ReportDao {
	/**
	 * 查找报表对象
	 * @param reId
	 * @return
	 * @throws Exception
	 * @author Xuzq
	 * @date 2014-3-3 下午05:24:07
	 */
	ReportBar findRCOById(String reId)throws Exception;

	/***
	 * 根据dsId查询到报表的对象
	 * @param dsId
	 * @return
	 * @throws Exception
	 */
	RepListDataStore findByDsId(String dsId) throws Exception;


	/**
	 * 根据添加的sql查询出数据
	 * @param sqlText
	 * @return
	 * @throws Exception
	 */
	public List queryRpData(String sql, Integer xshowCount) throws Exception;


	/**
	 *  根据dsId得到要显示界面要显示的的字段
	 * @param dsId
	 * @return
	 */
	List getReportCols(String dsId, String type, String flag) throws Exception;

	/**
	 *  根据dsId得到要显示的按钮
	 * @param dsId
	 * @return
	 */
	List getReportButns(String dsId) throws Exception;
	
	/**
	 *  根据dsId得到要报表的条件
	 * @param dsId
	 * @return
	 */
	public List getReportCondition(String dsId) throws Exception;
	
	
	/***
	 * 更新数据
	 * @param sqlText
	 * @param cpage
	 * @param rows
	 * @return
	 * @throws Exception
	 */
	QueryJson queryRowsBySqlPagination(String sqlText, int cpage,int rows) throws Exception;
	
	/**
	 * 根据dsId和视图的筛选条件得到要显示的列
	 * @param dsId
	 * @return
	 */
	public List getReportCol(String dsId,String repChoise,String type, String flag) throws Exception;
	
	
	/***
	 * 根据dsId筛选出共有的要先的列的数据的集合
	 * 
	 */
	public List getCommonData(String dsId) throws Exception;
	
	
	/***
	 * 根据dsId筛选出条件的列的对象
	 * 
	 */
	public RepViewType  getViewChoice(String dsId,String viewName) throws Exception;

	/**
	 * 加载数据
	 * @param sql
	 * @param currentPage
	 * @param pageSize
	 * @return
	 * @throws Exception
	 * @author Xuzq
	 * @date 2014-5-6 下午03:09:13
	 */
	List loadRresult(StringBuffer sql, Integer currentPage, Integer pageSize) throws Exception;

	/**
	 * 加载bar报表样式
	 * @param reid
	 * @return
	 * @throws Exception
	 * @author Xuzq
	 * @date 2014-5-6 下午06:26:36
	 */
	ReportBar findBarByReId(String reid) throws Exception;

	/**
	 * 加载饼状图报表
	 * @param reid
	 * @return
	 * @throws Exception
	 * @author Xuzq
	 * @date 2014-5-7 下午05:24:05
	 */
	ReportPie findPieByReId(String reid) throws Exception;
	



}
